// import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement;
// import com.alibaba.druid.sql.ast.statement.SQLTableSourceImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../../sql/ast/statement/SQLTableSourceImpl.h"

class SQLCreateTableStatement;
class SQLASTVisitor;

class SQLAdhocTableSource
    : virtual public SQLTableSourceImpl
{
public:
  std::shared_ptr<SQLCreateTableStatement> definition;

  SQLAdhocTableSource(std::shared_ptr<SQLCreateTableStatement> definition);
  SHAREDOBJECT(SQLAdhocTableSource)   ;
  //@Override
  void accept0(SQLASTVisitor_ptr v);

  std::shared_ptr<SQLCreateTableStatement> getDefinition();

  void setDefinition(std::shared_ptr<SQLCreateTableStatement> x);
};
